Lucid - A Formal System for Writing and Proving Programs
نویسندگان
چکیده
Lucid is both a programming language and a formal system for proving properties of Lucid programs. The programming language is unconventional in many ways, although programs are readily understood as using assignment statements and loops in a “structured” fashion. Semantically, an assignment statement is really an equation between “histories”, and a whole program is simply an unordered set of such equations. From these equations, properties of the program can be derived by straightforward mathematical reasoning, using the Lucid formal system. The rules of this system are mainly those of first-order logic, together with extra axioms and rules for the special Lucid functions. This paper formally described the syntax and semantics of programs, and justifies the axioms and rules of the formal system.
منابع مشابه
A short introduction to two approaches in formal verification of security protocols: model checking and theorem proving
In this paper, we shortly review two formal approaches in verification of security protocols; model checking and theorem proving. Model checking is based on studying the behavior of protocols via generating all different behaviors of a protocol and checking whether the desired goals are satisfied in all instances or not. We investigate Scyther operational semantics as n example of this...
متن کاملFormally Specifying and Proving Operational Aspects of Forensic Lucid in Isabelle
A Forensic Lucid intensional programming language has been proposed for intensional cyberforensic analysis. In large part, the language is based on various predecessor and codecessor Lucid dialects bound by the higher-order intensional logic (HOIL) that is behind them. This work formally specifies the operational aspects of the Forensic Lucid language and compiles a theory of its constructs usi...
متن کاملA Logical Programming Language∗
In this paper we consider a family of languages (USWIM) which is based on Landin’s ISWIM (the individual languages being determined by appropriate continuous algebras of data objects and operations on these objects). We give a simple mathematical semantics for USWIM, and also give a system of program manipulation rules and a system of inference rules for reasoning about USWIM programs, the latt...
متن کاملTesting Program Verification Techniques and Input Space Partitioning
1. Prove correctness This approach requires writing exhaustive, precise formal specifications (preconditions, postconditions, and usually loop invariants), then proving that these specifi cations are satisfied by the code and its environment. The proof can be performed by hand, but for non-trivial programs, the proofs are long and tedious and humans are prone to errors, so theorem-proving soft...
متن کاملReal Time Reactive Programming in Lucid Enriched with Contexts
We present a synchronous approach to real-time reactive programming in Lucid enriched with contexts as first class objects. The declarative intensional approach allows real-time reactive programs to manipulate both events and state-based representations of complex systems. We show the formal specification of the Train-Gate-Controller problem, a standard case study in real-time systems community...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- SIAM J. Comput.
دوره 5 شماره
صفحات -
تاریخ انتشار 1976